﻿using System;
namespace Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister {
    
    
    public partial class Juhid2 : global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhid2 {
        
        private string @__eesnimi;
        
        private string @__perekonnanimi;
        
        private string @__synniaeg;
        
        private string @__isikukood;
        
        private string @__synnikohaRiik;
        
        private string @__haldusyksus;
        
        private string @__aadress;
        
        private Juhid2.IJuhiloadType @__juhiload;
        
        public Juhid2() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public Juhid2(string @eesnimi, string @perekonnanimi, string @synniaeg, string @isikukood, string @synnikohaRiik, string @haldusyksus, string @aadress, Juhid2.IJuhiloadType @juhiload) {
            this.@__eesnimi = @eesnimi;
            this.@__perekonnanimi = @perekonnanimi;
            this.@__synniaeg = @synniaeg;
            this.@__isikukood = @isikukood;
            this.@__synnikohaRiik = @synnikohaRiik;
            this.@__haldusyksus = @haldusyksus;
            this.@__aadress = @aadress;
            this.@__juhiload = @juhiload;
        }
        
        /// <summary>
        /// Required parameters
        /// </summary>
        public Juhid2(string @eesnimi, string @perekonnanimi, string @synniaeg, string @synnikohaRiik, Juhid2.IJuhiloadType @juhiload) {
            this.@__eesnimi = @eesnimi;
            this.@__perekonnanimi = @perekonnanimi;
            this.@__synniaeg = @synniaeg;
            this.@__synnikohaRiik = @synnikohaRiik;
            this.@__juhiload = @juhiload;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected Juhid2(IJuhid2 @juhid2) {
            this.@__eesnimi = @juhid2.Eesnimi;
            this.@__perekonnanimi = @juhid2.Perekonnanimi;
            this.@__synniaeg = @juhid2.Synniaeg;
            this.@__isikukood = @juhid2.Isikukood;
            this.@__synnikohaRiik = @juhid2.SynnikohaRiik;
            this.@__haldusyksus = @juhid2.Haldusyksus;
            this.@__aadress = @juhid2.Aadress;
            this.@__juhiload = @juhid2.Juhiload;
        }
        
        public virtual string Eesnimi {
            get {
                return this.@__eesnimi;
            }
            set {
                this.@__eesnimi = value;
            }
        }
        
        public virtual string Perekonnanimi {
            get {
                return this.@__perekonnanimi;
            }
            set {
                this.@__perekonnanimi = value;
            }
        }
        
        public virtual string Synniaeg {
            get {
                return this.@__synniaeg;
            }
            set {
                this.@__synniaeg = value;
            }
        }
        
        public virtual string Isikukood {
            get {
                return this.@__isikukood;
            }
            set {
                this.@__isikukood = value;
            }
        }
        
        public virtual string SynnikohaRiik {
            get {
                return this.@__synnikohaRiik;
            }
            set {
                this.@__synnikohaRiik = value;
            }
        }
        
        public virtual string Haldusyksus {
            get {
                return this.@__haldusyksus;
            }
            set {
                this.@__haldusyksus = value;
            }
        }
        
        public virtual string Aadress {
            get {
                return this.@__aadress;
            }
            set {
                this.@__aadress = value;
            }
        }
        
        public virtual Juhid2.IJuhiloadType Juhiload {
            get {
                return this.@__juhiload;
            }
            set {
                this.@__juhiload = value;
            }
        }
        
        public partial class JuhiloadType : IJuhiloadType {
            
            private System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhiload2> @__item = new System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhiload2>();
            
            public JuhiloadType() {
            }
            
            /// <summary>
            /// All parameters
            /// </summary>
            public JuhiloadType(System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhiload2> @item) {
                this.@__item = @item;
            }
            
            /// <summary>
            /// Copy Constructor
            /// </summary>
            protected JuhiloadType(IJuhiloadType @juhiloadType) {
                this.@__item = @juhiloadType.Item;
            }
            
            public virtual System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhiload2> Item {
                get {
                    return this.@__item;
                }
                set {
                    this.@__item = value;
                }
            }
        }
        
        public interface IJuhiloadType {
            
            System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhiload2> Item {
                get;
                set;
            }
        }
    }
}
